<?
class videosController extends secured_basic_action{
	
	// rechten checken
	protected function initController(){
	
		$this -> bewGroep -> fill();
				$this -> view -> module = "videos";

		if($this -> bewGroep -> rechten < 2){
			$this -> redirect('/gebruiker/');
		}
	
	
	}

	public function indexAction(){
		
		require_once('./application/models/videoModel.php');
		
		// template setten		
		$this -> view -> setTpl('gebruiker_items_list.php');
		$this -> view -> toevoegenText = 'Video toevoegen';
		$this -> view -> itemName = "videos";
			if(isset($this -> bewGroepId)){
		$this -> view -> toevoegenLink = "/gebruiker/videos/toevoegen/".$this -> bewGroepId;
		}else{
		$this -> view -> toevoegenLink = "/gebruiker/videos/toevoegen/";
		}
		$this -> view -> action = "Videos";
		
		$model = videoModel::getInstance($this -> conn);
		
		$list = new item_list($model -> getVideosByUserForEditList($this -> bewGroep), 20);
		
		
		
		if(isset($this -> bewGroepId)){
		
		$list -> setEditUrl('/gebruiker/videos/bewerken/'.$this -> bewGroepId.'');
		$list -> setDeleteUrl('/gebruiker/videos/verwijderen/'.$this -> bewGroepId.'');
		$list -> setPageUrl('/gebruiker/videos/'.$this -> bewGroepId.'');
		
		}else{
		$list -> setEditUrl('/gebruiker/videos/bewerken');
		$list -> setDeleteUrl('/gebruiker/videos/verwijderen');
		$list -> setPageUrl('/gebruiker/videos');
		}
		
		
	
		
		
		if($this -> request -> getParam(0) != NULL){
			if(isset($this -> bewGroepId)){
			$page = $this -> request -> getParam(1);
			}else{
			$page = $this -> request -> getParam(0);
			}
		}else{
			$page = 0;
		}
		
		
		if($list -> isEmpty()){
		
			$this -> view -> isEmpty = true;
		
		}
		
		$this -> view -> itemList = $list -> renderPage($page);
		
		if($list -> getNextPage() != NULL){
	
			$this -> view -> nextLink = $list -> getNextPage();
		}
		if($list -> getPrevPage() != NULL){
	
			$this -> view -> prevLink = $list -> getPrevPage();
		}
		
		$this -> view -> render();
		
	
	
	
	}

	public function toevoegenAction(){
	require_once('./application/models/albumModel.php');
		// view settings
		$this -> view -> setTpl('gebruiker_items.php');
		$this -> view -> action = "video toevoegen";
		$this -> view -> video = true;
		// nieuw formulier aanmaken
		$form = new form('frm_video',form::POST);
		
		// velden aanmaken
		$titel = new form_element_textField('frm_titel');
		$album = new form_element_listBox('frm_album');
		$file = new form_element_fileField('frm_file');
		$btn = new form_element_button('frm_btn');
		
		// listbox opvullen
		
		$albumModel = albumModel::getInstance($this -> conn);
		
		$albums = $albumModel -> getAlbums($this -> bewGroep,1);
		
		if(count($albums) < 1){
		
			$btn -> disable();
			$this -> view -> errors = array('Je moet eerst een album toevoegen om videos te kunnen posten');
		
		}else{
		
			foreach ($albums as $value)
			{
				$album -> add($value -> title , $value -> id);
				
				
			}
		}
		
		
		// labels toevoegen
		$titel -> addLabel('Video titel:');
		$file -> addLabel('Video:');
		$album -> addLabel('Album:');
		
		// button text
		
		$btn -> setValue('Toevoegen');
		
		
		// validate regels toekennen
		
		$titel -> addRule('notNull', 'Je moet een titel invoeren');
		$file -> addRule('isUploaded', 'Je moet een filmpje meesturen');
		$file-> addRule('fileType','Geef een juiste file in',array('video/avi', 'video/msvideo', 'video/x-msvideo','video/avs-video','video/x-dv','video/dl', 'video/x-dl', 'video/fli', 'video/x-fli','video/gl', 'video/x-gl','video/mpeg', 'video/quicktime', 'video/x-sgi-movie','video/x-mpeg', 'video/x-mpeq2a','video/x-qtc', 'video/x-scm', 'video/vdo', 'video/vivo', 'video/vnd.vivo','video/vivo', 'video/vnd.vivo', 'video/x-flv', 'video/flv'));
		$file-> addRule('maxFileSize', 'Je bestand mag niet groter zijn dan 6Mb', array(20000000000000));

	
		
		// elementen toevoegen aan het form object
		$form -> addElementRange(array($titel,$album,$file,$btn));
		
		
		
		// form doosturen naar de view
		$this -> view -> form = $form;
		
	
		if($form -> isSend()){
			// hier is alles in orde dus kunnen we de data verwerken
			if($form -> isValid()){
			$video = new item_video($this -> conn);
			$video -> user = $this -> bewGroep;
			$video -> title = $titel -> getSend();
			$video -> video = $file -> getSend();
			$video -> album_id = $album -> getSend();
			
			if($video -> insert()){
				// succes bericht meegeven aan de view 
			$this -> view -> succes = 'Video is succesvol toegevoegd';
			
			}else{
				$this -> view -> errors = array('Er is een fout opgetreden probeer het later nog eens opnieuw');
				
			}
			
		
			}else{
			// hier gaat iets fout
		//	echo 'error';
			$this -> view -> errors = $form -> getErrors();
			
			
			}
		
		
		
		}
		$this -> view -> render();
		
		
		
		
	}
	public function bewerkenAction(){
		$videos = new item_video($this -> conn);

		if(isset($this -> bewGroepId)){
			$videos -> id = $this -> request -> getParam(1);
		}else{
				$videos -> id = $this -> request -> getParam(0);

		}

		$videos -> fill();
		
		
		$albumModel = albumModel::getInstance($this -> conn);
		$aAlbums = array();
		
		// view settings
		$this -> view -> setTpl('gebruiker_items.php');
		$this -> view -> action = "video bewerken";
		
		// nieuw formulier aanmaken
		$form = new form('frm_video',form::POST);
		
		// velden aanmaken
		$titel = new form_element_textField('frm_titel');
		$type = new form_element_listBox('frm_type');
		$btn = new form_element_button('frm_btn');
		
		// labels toevoegen
		$titel -> addLabel('video titel:');
		$type -> addLabel('Album type:');
		
		// button text
		$titel -> setValue($videos -> title);
		$btn -> setValue('Toevoegen');
	
		$aAlbums = $albumModel -> getAlbums($this -> bewGroep,0);
		$albumList = array();
		foreach ($aAlbums as $value)
		{
			$album -> add($value -> title , $value -> id);
			$albumList[]= $value -> id;
			
		}
		
		
		
		// validate regels toekennen
		
		$titel -> addRule('notNull', 'Je moet een titel invoeren');
		//$type -> addRule('isIn', 'Het geselecteerde type bestaat niet', array('0','1'));
		
		
		
		
		// elementen toevoegen aan het form object
		$form -> addElementRange(array($titel,$type,$btn));
		
		
		
		// form doosturen naar de view
		$this -> view -> form = $form;
		
	
		if($form -> isSend()){
			
			// hier is alles in orde dus kunnen we de data verwerken
			if($form -> isValid()){
			$videos -> title = $titel -> getSend();
			$videos -> album_id = $type -> getSend();
			$videos -> update();
			$titel -> setValue($videos -> title);
			
			// succes bericht meegeven aan de view 
			$this -> view -> succes = 'Video is succesvol gewijzigd';
			}else{
			// hier gaat iets fout
		//	echo 'error';
			$this -> view -> errors = $form -> getErrors();
			
			
			}
		
		
		
		}
		$this -> view -> render();
	}
	public function verwijderenAction()
	{
		// template setten		
		$this -> view -> setTpl('gebruiker_items_verwijderen.php');
	
		$this -> view -> addStyle(view::PATH_TO_STYLE.'beheerder.css');
		
		$this -> view -> action = "Video verwijderen";
		$this -> view -> module = "videos";
		if(isset($this -> bewGroepId)){
		$this -> view -> id = $this -> request -> getParam(0) .'/' .$this -> request -> getParam(1);
		}else{
		$this -> view -> id = $this -> request -> getParam(0);
		}	
		$this -> view -> render();
		
	
		
	}

	public function verwijderAction()
	{
		$video = new item_video($this -> conn);
		
		if(isset($this -> bewGroepId)){
		$video -> id = $this -> request -> getParam(1);
		}else{
		$video -> id = $this -> request -> getParam(0);
		}	
		
		
		$video -> verwijder();
		if(isset($this -> bewGroepId)){
		$this -> redirect('/gebruiker/videos/'.$this -> request -> getParam(0).'/');

		}else{
		$this -> redirect('/gebruiker/videos/');
		}
	}

}



?>